#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
继承:
语法:
    class DerivedClassName(BaseClassName):
        <statement_1>
        .
        .
        .
        <statement_N>
    BaseClassName 必须定义于包含派生类定义的作用域中，也可使用任意表达式，例如: class DerivedClassName(modname.BaseClassName):

Python 有两个内置函数可被用于继承机制:
    - 使用 isinstance() 来检查一个实例的类型:isinstance(obj, int)仅会在 obj.__class__为int或某个派生自int的类时为True
    - 使用 issubclass() 来检查类的集成关系: issubclass(bool, int)为True，因为 bool 是 int 的子类。
"""

"""
多重继承:
    class DerivedClassName(Base1, Base2, Base3):
        <statement_1>
        .
        .
        .
        <statement_N>
    解析顺序会动态改变以支持对 super() 的协同调用，这种方法在某些多继承语言中被称为后续方法调用。
"""

"""
私有变量:

"""


class Mapping:
    def __init__(self, iterable):
        self.items_list = []
        self.__update(iterable)

    def update(self, iterable):
        for item in iterable:
            self.items_list.append(item)

    __update = update


class MappingSubclass(Mapping):
    def update(self, keys, values):
        for item in zip(keys, values):
            self.items_list.append(item)
